﻿using B.WMS.GoodsDto.Output;
using B.WMS.InWareHouseManagementDtos;
using B.WMS.StandardReturn;
using B.WMS.WMSDtos.Inventory.Input;
using B.WMS.WMSDtos.Inventory.OutPut;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;

namespace B.WMS.IWMSService.Standing__Book
{
    public interface IStanding__BookAppService: IApplicationService
    {
        /// <summary>
        /// 库存查询
        /// </summary>
        /// <param name="pageindex">当前页</param>
        /// <param name="pagesize">页容量</param>
        /// <returns></returns>
        Task<ApiPaging<InventoryOutPut>> GetInventory(SearchInventoryInput input);
        /// <summary>
        /// 出入库流水
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<ApiPaging<Out_InWarehouseOutPut>> Out_InWarehouseOutPut(string? Goodscoding,int PageIndex,int PageSize,string? Warename,string? Out_InType,DateTime? Out_InTime);
        /// <summary>
        /// 获取库存分布
        /// </summary>
        /// <returns></returns>
        Task<ApiResult<List<Inventory_DistributionOutPut>>> GetInventory_Distribution(string GoodsId);
        Task<ApiResult<NumOutput>> GetNum(string GoodsId);
        // <summary>
        /// 获取商品
        /// </summary>
        Task<ApiResult<GoodsOutput>>  getGoods(string GoodsId);
        /// <summary>
        /// 获取商品列表 保质期
        /// </summary>
        /// <returns></returns>
        Task<ApiPaging<GetgoodsTimeDTO>> GetGoodsTimes(SearchGoodsTimesDTO  dTO);
        /// <summary>
        /// </summary>
        /// <returns>
        /// 仓库列表
        /// </returns>
        Task<ApiResult<List<SelectWareHouseDto>>> GetSelectWareHouse();
        /// <summary>
        /// 批次查询
        /// </summary>
        /// <returns></returns>
        Task<ApiPaging<piciDTO>> Getpici(SearchpiciInput dTO);
        /// <summary>
        /// 库存分布统计图
        /// </summary>
        /// <param name="date"></param>
        /// <returns></returns>
        Task<ApiResult<List<WarehouseOutInput>>> GetWaeHouse(int days=0);
    }
}
